﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Sige
{
    public partial class frmInscripcionCursos : Form
    {

        SqlConnection cn_superbit;
        DataSet ds = new DataSet();

        string tipodocumento = "";
        comisiones objcomision = new comisiones();
        Persona objpersona = new Persona();
        Alumno objalumno = new Alumno();
        alumnosporcomision objaluporcomi = new  alumnosporcomision();

        public frmInscripcionCursos()
        {
            InitializeComponent();
        }

        private void frmInscripcionCursos_Load(object sender, EventArgs e)
        {
            Accesoadatos datos = new Accesoadatos();
            string rutaBDSuperbit = datos.getruta();
            cn_superbit = datos.ObtenerConexion(rutaBDSuperbit);
        }

        private void btnConsulta_Click(object sender, EventArgs e)
        {
            frmConsultaCursosAbiertos buscarCurso = new frmConsultaCursosAbiertos(); // instancio en el objeto buscarCurso el formulario
            buscarCurso.ShowDialog(this);            
        }

       
                    
        private bool buscarComision()
        {
            string codComision = txtCodigoComision.Text.ToString();
            if (codComision.Trim().Length != 0)
            {
                if (objcomision.buscarComision(ref codComision, ref cn_superbit, ref ds)) { 
                    return true; } 
                    else 
                    { 
                    return false;
                    }
            }
            else
            {
            MessageBox.Show("Ingrese un valor");
            return false;
            }
            return true;
        }

    

        private void asignarValoresAlform()
        {
            txtDiaInicio.Text = objcomision.m_fechainicio.ToString().Substring(0, 2);
            txtMesInicio.Text = objcomision.m_fechainicio.ToString().Substring(3, 2);
            txtAnioInicio.Text = objcomision.m_fechainicio.ToString().Substring(6, 4);

            txtDiaFin.Text = objcomision.m_fechafin.ToString().Substring(0, 2);
            txtMesFin.Text = objcomision.m_fechafin.ToString().Substring(3, 2);
            txtAnioFin.Text = objcomision.m_fechafin.ToString().Substring(6, 4);

            txtTurno.Text = objcomision.m_turno.ToString();
            txtAula.Text = objcomision.m_aula.ToString();
            txtNombreCurso.Text = ds.Tables["comision"].Rows[0][6].ToString();
            string turno = objcomision.m_turno.ToString();
            if (turno.Equals("T"))
                turno = "Tarde";
            if (turno.Equals("N"))
                turno = "Noche";
            if (turno.Equals("M"))
                turno = "Mañana";
            txtTurno.Text = turno;
            txtVacantes.Text = objcomision.ObtenerVacantesComision(ref cn_superbit, ref ds).ToString();
            txtCurso.Text = objcomision.m_codigocurso.ToString();
            txtCodigoComision.Text = objcomision.m_comision.ToString();
        }


        private void txtDocumento_Leave(object sender, EventArgs e)
        {

            if (txtDocumento.Text.Trim().Length != 0)
            {
                if (rbtnDNI.Checked)
                    tipodocumento = "DU";
                if (rbtnLC.Checked)
                    tipodocumento = "LC";
                if (rbtnLE.Checked)
                    tipodocumento = "LE";
                if (rbtnPas.Checked)
                    tipodocumento = "PS";
              
                if (!objalumno.Alumno_Existente(tipodocumento.ToString(), txtDocumento.Text.ToString()))
                {
                    MessageBox.Show("Alumno inexistente");
                    txtDocumento.Text = "";
                    txtNombreAlumno.Text = "";
                    txtApellidoAlumno.Text = "";
                    txtDocumento.Focus();
                }

                else
                {
                    DataTable per   = new DataTable();
                    objpersona.ObtenerTablaPersonaPorDocumento(ref per,  tipodocumento.ToString(), txtDocumento.Text.ToString());
                    objpersona.ObtenerPersonaDesdeDatatable(ref objpersona, per);
                    txtNombreAlumno.Text = objpersona.Nombre.ToString();
                    txtApellidoAlumno.Text = objpersona.Apellido.ToString();
                    txtCodigoMatricula.Text = objcomision.obtenerNroMatricula(ref cn_superbit, ref ds).ToString();
                    btnGrabar.Enabled=true;
                }
            }
        }      
  

        private void borrarDatosCargadosForm()
        {
             
            txtCodigoMatricula.Text = "";
            tipodocumento = "";
            txtDocumento.Text = "";
            txtCodigoComision.Text = "";
            txtNombreAlumno.Text = "";
            txtApellidoAlumno.Text = "";
            txtAula.Text = "";
            txtCurso.Text = "";
            txtVacantes.Text = "";
            txtTurno.Text = "";
            txtAnioInicio.Text = "";
            txtDiaInicio.Text = "";
            txtMesInicio.Text = "";
            txtAnioFin.Text = "";
            txtDiaFin.Text = "";
            txtMesFin.Text = "";
            txtNombreCurso.Text = "";
        }
      
        
    private void btnGrabar_Click(object sender, EventArgs e)
        {           
                if (objaluporcomi.grabar(ref objpersona, ref objcomision, txtCodigoMatricula.Text.ToString(), ref cn_superbit))
                   { MessageBox.Show("Alta inscripcion realizada");
                    borrarDatosCargadosForm();
                    btnGrabar.Enabled = false;
                   }

                else { MessageBox.Show("No pudo realizarse el alta de inscripcion");
                btnGrabar.Enabled = false;
                }
            
        }
     
      

        private void btnSalir_Click(object sender, EventArgs e)
        {
           
            DialogResult sms = MessageBox.Show("Esta seguro desea salir de la aplicacion ?", "Salir de la Aplicacion ", MessageBoxButtons.YesNo);
            if (sms == DialogResult.Yes) // si devuelve Yes salgo aplicacion
                Application.Exit();
        }

        

        private void txtCodigoComision_Leave(object sender, EventArgs e)
        {
           //  si codigocomision esta en blanco y el foco no esta en boton consulta, salir o cancelar
            if (txtCodigoComision.Text.Trim().Length == 0 && (!btnConsulta.Focused && !btnSalir.Focused && !btnAtras.Focused && !btnCancelar.Focused))
            {
                MessageBox.Show("Debe Ingresar un valor");
                txtCodigoComision.Focus();
            }
          //  si ingreso algun valor en codigocomision chequea si es valido cuando tiene el control
            if (txtCodigoComision.Text.Trim().Length != 0)
            {
                string v_codigocomision = txtCodigoComision.Text.ToString();

                if  (!objcomision.buscarComision(ref v_codigocomision, ref cn_superbit, ref ds)){
                    borrarDatosCargadosForm();
                     txtCodigoComision.Focus();}

                else
                {      
                      objcomision.ObtenerComisionDeDataset(ref ds );
                      asignarValoresAlform( );}
            }
            else
            {   borrarDatosCargadosForm(); 
                txtCodigoComision.Focus(); } //ingreso un valor y no es valido vuelve el control a codigocomision
            }

     
        private void btnCancelar_Click(object sender, EventArgs e)
        {
            borrarDatosCargadosForm();
            
        }

        private void btnAtras_Click(object sender, EventArgs e)
        {
            Close();
        }

         }
      }

